package com.sunday.boot3.user.center.controller;

import com.sunday.boot3.user.center.pojo.dto.permissions.*;
import com.sunday.common.core.remoting.base.page.PageResultDTO;
import com.sunday.common.core.remoting.base.response.Response;

import java.util.Collection;

/**
 * @Description: 权限表 Controller 层
 * @author: zsy
 * @Create: 2024/09/22 16:24:39
 */
public interface PermissionsController {

    /**
     * @Description: 新增 权限表 数据
     * @Param: [savePermissionsReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response save(SavePermissionsReqDTO savePermissionsReqDTO);

    /**
     * @param saveBatchPermissionsReqDTO
     * @return
     * @Description: 权限表 批量权限保存
     */
    Response saveBatch(SaveBatchPermissionsReqDTO saveBatchPermissionsReqDTO);

    /**
     * @Description: 删除 权限表 数据
     * @Param: [removePermissionsReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response remove(RemovePermissionsReqDTO removePermissionsReqDTO);

    /**
     * @Description: 修改 权限表 数据
     * @Param: [updatePermissionsReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response update(UpdatePermissionsReqDTO updatePermissionsReqDTO);

    /**
     * @Description: 获取 权限表 分页列表数据
     * @Param: [pagePermissionsReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response<com.sunday.common.core.remoting.base.page.PageResultDTO < com.sunday.boot3.user.center.pojo.dto.permissions.PagePermissionsResDTO>>
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response<PageResultDTO<PagePermissionsResDTO>> page(PagePermissionsReqDTO pagePermissionsReqDTO);

    /**
     * 全量获取 权限标数据
     * @param
     * @return {@link Response< Collection< ListPermissionsResDTO>>}
     */
    Response<Collection<ListPermissionsResDTO>> list();

}
